package fr.afcepf.al22.projet1.entity;
// default package
// Generated 19 nov. 2014 11:02:30 by Hibernate Tools 3.4.0.CR1

import static javax.persistence.GenerationType.IDENTITY;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Utilisateur generated by hbm2java
 */
@Entity
@Table(name = "utilisateur", catalog = "projet1")
public class Utilisateur implements java.io.Serializable {

	private Integer idUtilisateur;
	private String nomUtilisateur;
	private String prenomUtilisateur;
	private String mailUtilisateur;
	private String mdpUtilisateur;
	private String droitsUtiliateur;
	private Set<Commande> commandes = new HashSet<Commande>(0);
	private Set<Commentaire> commentaires = new HashSet<Commentaire>(0);
	private Set<Adresse> adresses = new HashSet<Adresse>(0);

	public Utilisateur() {
	}

	public Utilisateur(String nomUtilisateur, String prenomUtilisateur,
			String mailUtilisateur, String mdpUtilisateur,
			String droitsUtiliateur) {
		this.nomUtilisateur = nomUtilisateur;
		this.prenomUtilisateur = prenomUtilisateur;
		this.mailUtilisateur = mailUtilisateur;
		this.mdpUtilisateur = mdpUtilisateur;
		this.droitsUtiliateur = droitsUtiliateur;
	}

	public Utilisateur(String nomUtilisateur, String prenomUtilisateur,
			String mailUtilisateur, String mdpUtilisateur,
			String droitsUtiliateur, Set<Commande> commandes,
			Set<Commentaire> commentaires, Set<Adresse> adresses) {
		this.nomUtilisateur = nomUtilisateur;
		this.prenomUtilisateur = prenomUtilisateur;
		this.mailUtilisateur = mailUtilisateur;
		this.mdpUtilisateur = mdpUtilisateur;
		this.droitsUtiliateur = droitsUtiliateur;
		this.commandes = commandes;
		this.commentaires = commentaires;
		this.adresses = adresses;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id_utilisateur", unique = true, nullable = false)
	public Integer getIdUtilisateur() {
		return this.idUtilisateur;
	}

	public void setIdUtilisateur(Integer idUtilisateur) {
		this.idUtilisateur = idUtilisateur;
	}

	@Column(name = "nom_utilisateur", nullable = false, length = 45)
	public String getNomUtilisateur() {
		return this.nomUtilisateur;
	}

	public void setNomUtilisateur(String nomUtilisateur) {
		this.nomUtilisateur = nomUtilisateur;
	}

	@Column(name = "prenom_utilisateur", nullable = false, length = 45)
	public String getPrenomUtilisateur() {
		return this.prenomUtilisateur;
	}

	public void setPrenomUtilisateur(String prenomUtilisateur) {
		this.prenomUtilisateur = prenomUtilisateur;
	}

	@Column(name = "mail_utilisateur", nullable = false, length = 80)
	public String getMailUtilisateur() {
		return this.mailUtilisateur;
	}

	public void setMailUtilisateur(String mailUtilisateur) {
		this.mailUtilisateur = mailUtilisateur;
	}

	@Column(name = "mdp_utilisateur", nullable = false, length = 45)
	public String getMdpUtilisateur() {
		return this.mdpUtilisateur;
	}

	public void setMdpUtilisateur(String mdpUtilisateur) {
		this.mdpUtilisateur = mdpUtilisateur;
	}

	@Column(name = "droits_utiliateur", nullable = false, length = 20)
	public String getDroitsUtiliateur() {
		return this.droitsUtiliateur;
	}

	public void setDroitsUtiliateur(String droitsUtiliateur) {
		this.droitsUtiliateur = droitsUtiliateur;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "utilisateur")
	public Set<Commande> getCommandes() {
		return this.commandes;
	}

	public void setCommandes(Set<Commande> commandes) {
		this.commandes = commandes;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "utilisateur")
	public Set<Commentaire> getCommentaires() {
		return this.commentaires;
	}

	public void setCommentaires(Set<Commentaire> commentaires) {
		this.commentaires = commentaires;
	}

	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "adresse_utilisateur", catalog = "projet1", joinColumns = { @JoinColumn(name = "id_utilisateur", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "id_adresse", nullable = false, updatable = false) })
	public Set<Adresse> getAdresses() {
		return this.adresses;
	}

	public void setAdresses(Set<Adresse> adresses) {
		this.adresses = adresses;
	}

}
